2020年5月19日
Jerry
9542
2021年1月17日
C# winform 使用 panel 实现动态加载,仿微信客户端:点击按钮切换功能界面。
刚开始想的是用tabcontrol 来实现,只需要把tabcontrol 横过来就行了,后来想了想还可以用panel+button来动态加载。
在winform创建几个按钮和几个panel,我这里搞了两个,里面分别包含不同的控件。
这里有个常遇到的问题,就是panel绘制的时候经常容易嵌套,比如panel1完成了,再来panel2的时候,一拖动可能就被拖进了panel1,其实我们想要的是两者并列的关系。
这里百度查到了一个解决小方法,就是点击 视图--其他视图--文档大纲,这样能看到所有控件的关系。
并列关系就把panel2挪到和panel1并列的父节点下面就行了。
panel绘制好了,接下来就完成按钮点击函数就行了,代码很简单:点击聊天按钮,使panel1显示,panel2不显示。点击好友按钮,使panel2显示,panel1不显示。
private void button14_Click(object sender, EventArgs e)
{
Console.WriteLine(panel1.Visible);
panel1.Visible = true;
panel2.Visible = false;
}
private void button15_Click(object sender, EventArgs e)
{
panel2.Visible = true;
panel1.Visible = false;
panel2.BringToFront();
panel2.Location = panel1.Location;//让位置相等
}
panel2.BringToFront(); //可以使panel2置顶显示
panel2.Location = panel1.Location; //让panel2位置和panel1相同,在原先位置生成。
最后的效果:
原创文章,转载请注明出处:
https://jerrycoding.com/article/winform-panel
微信
支付宝